#include<iostream>
#include<unordered_set>
using namespace std;


/*  
    unordered_set 是 C++ 标准模板库（STL）中的一个关联容器，提供了基于哈希表的唯一元素存储。
    它允许快速插入、删除和查找元素，具有平均常数时间复杂度的操作。

    unordered_set 的基本操作：
    insert(value)：插入一个元素。
    find(value)：查找元素，返回一个迭代器。
    erase(value)：删除指定元素。
    size()：返回容器中元素的个数。
    empty()：判断容器是否为空。
*/


int main() {
    unordered_set<int> uset; // 初始化一个空的 unordered_set


    // 插入元素
    uset.insert(10);
    uset.insert(20);
    uset.insert(30);

    cout << "Size of uset: " << uset.size() << endl;

    // 查找元素
    if (uset.find(20) != uset.end()) {
        cout << "Found 20 in uset" << endl;
    } else {
        cout << "20 not found in uset" << endl;
    }   
    // 删除元素
    uset.erase(20);

    cout << "After erasing 20, size of uset: " << uset.size() << endl;
    if (uset.find(20) != uset.end()) {
        cout << "Found 20 in uset" << endl;
    } else {
        cout << "20 not found in uset" << endl;
    }
    // 遍历 unordered_set
    for (const auto& value : uset) {
        cout << value << " ";
    }
    cout << endl;
    return 0;
}